home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Trusted Irix /B 4.0.4
/
Trusted-Irix B-4.0.1.iso
/
dist
/
eoe1.idb
/
usr
/
include
/
sys
/
vmereg.h.z
/
vmereg.h
Wrap
C/C++ Source or Header
|
1992-04-03
|
3KB
|
99 lines
#ifndef __SYS_VMEREG_H__
#define __SYS_VMEREG_H__
/**************************************************************************
* *
* Copyright (C) 1986, Silicon Graphics, Inc. *
* *
* These coded instructions, statements, and computer programs contain *
* unpublished proprietary information of Silicon Graphics, Inc., and *
* are protected by Federal copyright law. They may not be disclosed *
* to third parties or copied or duplicated in any form, in whole or *
* in part, without the prior written consent of Silicon Graphics, Inc. *
* *
**************************************************************************/
#ident "$Revision: 3.14 $"
/*
* VME Machine Independent (e.g. Bus specific stuff)
*/
/* Address Modifiers */
#define VME_A16NPAMOD 0x29 /* a16 non-privileged addr modifier */
#define VME_A16SAMOD 0x2d /* a16 supervisor addr modifier */
#define VME_A24NPAMOD 0x39 /* a24 non-privileged addr modifier */
#define VME_A24SAMOD 0x3d /* a24 supervisor addr modifier */
#define VME_A32NPAMOD 0x09 /* a32 non-privileged addr modifier */
#define VME_A32NPBLOCK 0x0b /* a32 non-privileged block transfer */
#define VME_A32SAMOD 0x0d /* a32 supervisor addr modifier */
/* block mode Address Modifiers */
#define VME_A24NPBAMOD 0x3b /* a24 np block mode AM */
#define VME_A24SBAMOD 0x3f /* a24 sup block mode AM */
#define VME_A32NPBAMOD 0x0b /* a32 np block mode AM */
#define VME_A32SBAMOD 0x0f /* a32 sup block mode AM */
/* VME I/O address table */
struct vme_ioaddr {
unsigned long v_base; /* virtual base */
unsigned long v_phys; /* physical base */
unsigned long v_length; /* in bytes */
};
extern struct vme_ioaddr vme_ioaddr[][6];
/* indexes into VME address table */
#define VME_A16NP 0
#define VME_A16S 1
#define VME_A24NP 2
#define VME_A24S 3
#define VME_A32NP 4
#define VME_A32S 5
/*
* VME address conversion macros
*/
#ifdef STANDALONE
/*
* VME address conversion macros
*/
#define VMESA16_TO_PHYS(x) ((unsigned)(x)+VME_A16SBASE)
#define VMENPA16_TO_PHYS(x) ((unsigned)(x)+VME_A16NPBASE)
#define VMESA24_TO_PHYS(x) ((unsigned)(x)+VME_A24SBASE)
#define VMENPA24_TO_PHYS(x) ((unsigned)(x)+VME_A24NPBASE)
#define VMESA32_TO_PHYS(x) ((unsigned)(x)+VME_A32SBASE)
#define VMENPA32_TO_PHYS(x) ((unsigned)(x)+VME_A32NPBASE)
#if !defined(IP5) && !defined(IP17)
#define VME2NPA32_TO_PHYS(x) ((unsigned)(x)+VME_2A32NPBASE)
#endif
/* for io3 E space */
#define VME1SA24_TO_PHYS(x) ((unsigned)(x)+VME1_A24SBASE)
#define VME1NPA24_TO_PHYS(x) ((unsigned)(x)+VME1_A24NPBASE)
#else /* kernel */
#define VMENPA16_TO_PHYS(x) (vme_to_phys((x), VME_A16NP))
#define VMESA16_TO_PHYS(x) (vme_to_phys((x), VME_A16S))
#define VMENPA24_TO_PHYS(x) (vme_to_phys((x), VME_A24NP))
#define VMESA24_TO_PHYS(x) (vme_to_phys((x), VME_A24S))
#define VMENPA32_TO_PHYS(x) (vme_to_phys((x), VME_A32NP))
#define VMESA32_TO_PHYS(x) (vme_to_phys((x), VME_A32S))
/* misnamed macro */
#define vme_to_phys(addr, type) (vme_ioaddr[(vme_adapter(addr))][(type)].v_base + (addr))
#define IS_VME_A16NP(x) (is_vme_space((x), VME_A16NP))
#define IS_VME_A16S(x) (is_vme_space((x), VME_A16S))
#define IS_VME_A24NP(x) (is_vme_space((x), VME_A24NP))
#define IS_VME_A24S(x) (is_vme_space((x), VME_A24S))
#define IS_VME_A32NP(x) (is_vme_space((x), VME_A32NP))
#define IS_VME_A32S(x) (is_vme_space((x), VME_A32S))
#endif /* STANDALONE */
#endif /* !__SYS_VMEREG_H__ */